<?php

class Application_Model_JoinFiltro
{

 /**
 * Metodo para adicionar novo filtro
 * @param Int $join_idfiltro chave estrangeira da tabela filtro
 * @param String $campo primeiro campo para selecao do filtro
 * @param String $palavraChave segundo campo para selacao do filtro
 * @param String $expressao condição para clausula where
 * @return boolean
 * */ 
    public function addFiltro ($join_idfiltro,$campo, $expressao, $palavraChave)
    {
    	$data = array('join_idfiltro' => $join_idfiltro, 
        			  'campo'=>$campo,
        			  'expressao'=>$expressao,
        			  'palavraChave'=>$palavraChave);
        $filtro = new Application_Model_DbTable_JoinFiltro();
        $filtro->insert($data);
    }
    
 /**
 * Metodo para listar todos os filtros adicionados
 * @param int $join_idfiltro chave primaria tabela filtro
 * @return array();
 * */
    public function listaAllFiltros ($join_idfiltro)
    {
        $filtro = new Application_Model_DbTable_JoinFiltro(); 
        $id = (int) $join_idfiltro;       
        $cond = $filtro->getAdapter()->quoteInto('j.join_idfiltro=?', $id);
        $select = $filtro->select()
            ->setIntegrityCheck(false)
            ->from(array('j' => 'join_filtro')) 
            ->where($cond,$join_idfiltro)          
            ->order('j.idjoin_filtro ASC');
        $dados = $filtro->fetchAll($select);
        return $dados->toArray();
    }
    
    /**
     * Metodo para atualizar filtros adicionados
     * @param int $join_idfiltro id do filtro
     * @param string $conector conector entre os filtros
     */
    public function  updateFiltro($idjoin_filtro,$conector)
    {
    	$filtro = new Application_Model_DbTable_JoinFiltro();
    	$data = array('conector'=>$conector);
    	$where = 'idjoin_filtro ='.$idjoin_filtro;
    	$filtro->update($data, $where);
    }
    
    /**
     * Metodo para excluir regra de filtros adicionados
     * @param int $idjoin_filtro chave primaria da tabela join_filtro
     */
    public function excluirRegra($idjoin_filtro)
    {
    	$filtro = new Application_Model_DbTable_JoinFiltro();
    	$id = (int) $idjoin_filtro;    	
    	$where = $filtro->getAdapter()->quoteInto('idjoin_filtro=?', $id);
    	$filtro->delete($where);
    }
    public function pegaMaxId()
    {
    	$filtro = new Application_Model_DbTable_JoinFiltro();
    	$sql = 'SELECT MAX(idjoin_filtro) as idjoin_filtro FROM join_filtro';
    	return $filtro->getAdapter()->fetchRow($sql);
    }

}

